import type { EventHandler, EventHandlerRequest } from 'h3'

export const defineWrappedResponseHandler = <T extends EventHandlerRequest, D>(
    handler: EventHandler<T, D>
): EventHandler<T, D> =>
    defineEventHandler<T>(async event => {
        try {
            // 在路由处理程序之前执行某些操作
            console.log('请求处理之前...')
            const response = await handler(event)
            console.log('请求处理之后...')
            // 在路由处理程序之后执行某些操作
            return { response }
        } catch (err) {
            // 错误处理
            return { err }
        }
    })
